package com.itsitio.registeradmin.service;

import java.util.List;

import com.itsitio.registeradmin.model.MilesDetail;
import com.itsitio.registeradmin.model.News;
import com.itsitio.registeradmin.model.Portal;
import com.itsitio.registeradmin.model.User;

public interface UserSrv {

	/**
	 * @return
	 */
	public List<User> findAll();

	/**
	 * @param idUsuario
	 * @return
	 */
	public User get(Integer idUsuario);
	

	/**
	 * 
	 * @param branchId - ID de la sucursal
	 * @return Retorna la lista de usuarios que estan asociados a la sucursal.
	 */
	public List<User> getUserListByBranchId(Integer branchId);
	
	/**
	 * 
	 * @param lastName - Apellido del usuario
	 * @param email - Email del usuario
	 * @return
	 */
	public List<User> findUserByFilter(String lastName, String email);	

	public User updateUserWithUserRegistrationData(Integer selectedUser,
			Integer branchId, String name, String lastName, String email,
			Integer userCompanyPosition, Integer userCompanyDepartment, String phone);

	public User createUserFromUserRegistration(Integer branchId, String name, String lastName,
			String email, Integer userCompanyPosition,
			Integer userCompanyDepartment, String phone);

	public User obtener(Integer userId);

	public void updateUserPortals(Integer[] selectedPortals, User user);
	
	public void updateUserNews(Integer[] selectedNews, User user);

	public List<Portal> getUserPortals(User user);

	public List<News> getUserNews(User user);

	public List<MilesDetail> getUserMilesDetail(User user);
	
}
